using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using QiBu.Api.Helper;
using QiBu.Api.ILogic;
using QiBu.Api.IService;
using QiBu.Api.Map;
using QiBu.Api.Helper.Common;
/****************************************
 * 标题：应用层实现(APP_Schedule)
 * 描述：由T4模板统一生成
 * 开发：单车上的程序猿（2015年3月19日 23:32:43）
 * 编辑：
 * 备注：
 * *************************************/

namespace QiBu.Api.Logic
{
  /// <summary>
  /// 应用层实现(APP_Schedule)
  /// </summary>
    public class APP_ScheduleLogic : Singleton<APP_ScheduleLogic>, IAPP_ScheduleLogic
  {


        #region 受保护的属性

        /// <summary>
        /// 获取或设置 用户信息数据访问对象
        /// </summary>
        private IAPP_ScheduleService APP_ScheduleService { get; set; }

        private APP_ScheduleLogic()
        {
            this.APP_ScheduleService = UnityIOC.Instance.GetService<IAPP_ScheduleService>();
        }

        #endregion

        #region 公共属性

        /// <summary>
        /// 获取 用户信息查询数据集
        /// </summary>
        public IQueryable<APP_Schedule> Datas
        {
            get { return APP_ScheduleService.Entities; }
        }

        #endregion

        #region 公共方法

        /// <summary>
        /// 插入实体记录
        /// </summary>
        /// <param name="entity"> 实体对象 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public int Insert(APP_Schedule entity, bool isSave = true)
        {
          return  APP_ScheduleService.Insert(entity, isSave);
        }

        /// <summary>
        /// 批量插入实体记录集合
        /// </summary>
        /// <param name="entities"> 实体记录集合 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public int Insert(IEnumerable<APP_Schedule> entities, bool isSave = true)
        {
            return APP_ScheduleService.Insert(entities, isSave);
        }

        /// <summary>
        /// 删除指定编号的记录
        /// </summary>
        /// <param name="id"> 实体记录编号 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public int Delete(object id, bool isSave = true)
        {
            return APP_ScheduleService.Delete(id, isSave);
        }

        /// <summary>
        /// 删除实体记录
        /// </summary>
        /// <param name="entity"> 实体对象 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public int Delete(APP_Schedule entity, bool isSave = true)
        {
            return APP_ScheduleService.Delete(entity, isSave);
        }

        /// <summary>
        /// 删除实体记录集合
        /// </summary>
        /// <param name="entities"> 实体记录集合 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public int Delete(IEnumerable<APP_Schedule> entities, bool isSave = true)
        {
            return APP_ScheduleService.Delete(entities, isSave);
        }

        /// <summary>
        /// 删除所有符合特定表达式的数据
        /// </summary>
        /// <param name="predicate"> 查询条件谓语表达式 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public int Delete(Expression<Func<APP_Schedule, bool>> predicate, bool isSave = true)
        {
            return APP_ScheduleService.Delete(predicate, isSave);
        }

        /// <summary>
        /// 更新实体记录
        /// </summary>
        /// <param name="entity"> 实体对象 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public int Update(APP_Schedule entity, bool isSave = true)
        {
            return APP_ScheduleService.Update(entity, isSave);
        }


        /// <summary>
        /// 查找指定主键的实体记录
        /// </summary>
        /// <param name="key"> 指定主键 </param>
        /// <returns> 符合编号的记录，不存在返回null </returns>
        public APP_Schedule GetByKey(object key)
        {
            return APP_ScheduleService.GetByKey(key);
        }

		/// <summary>
        /// 查找指定复合主键的实体记录
        /// </summary>
        /// <param name="key"> 指定复合主键 </param>
        /// <returns> 符合编号的记录，不存在返回null </returns>
		public APP_Schedule GetByKey(params object[] keyValues)
		{
			return APP_ScheduleService.GetByKey(keyValues);
		}

		/// <summary>
        ///根据条件表达式查询返回一条记录
        /// </summary>
        /// <param name="exp">条件表达式</param>
        /// <returns>一条记录</returns>
		public APP_Schedule Find(Expression<Func<APP_Schedule, bool>> exp)
		{
			return APP_ScheduleService.Find(exp);
		}

		/// <summary>
        /// 根据条件表达式查询记录
        /// </summary>
        /// <param name="exp">条件表达式</param>
        /// <returns>记录集合</returns>
		public IQueryable<APP_Schedule> BatchFind(Expression<Func<APP_Schedule, bool>> exp)
		{
			return APP_ScheduleService.BatchFind(exp);
		}

		/// <summary>
        /// 更新实体集合记录
        /// </summary>
        /// <param name="entities"> 实体对象集合 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
		public int Update(IEnumerable<APP_Schedule> entities, bool isSave = true)
		{
			return APP_ScheduleService.Update(entities, isSave);
		}

        #endregion
  }	
}
